#include "ThreadPool.hpp"
#include "thread.hpp"
#include "Task.hpp"
#include <memory>

int main()
{
    // std::unique_ptr<ThreadPool<Task>> tp(new ThreadPool<Task>());

    // ThreadPool<Task>*tp = ThreadPool<Task>::getinstance();

    // tp->run();

    ThreadPool<Task>::getinstance()->run();

    int x,y;
    char op;
    while(1)
    {
        std::cout<<"请输入数据1# ";
        std::cin>>x;
        std::cout<<"请输入数据2# ";
        std::cin>>y;
        std::cout<<"请输入你要进行的运算# ";
        std::cin>>op;

        Task t(x,y,op,mymath);

        std::cout<<"你刚刚录入了一个任务："<<t.toTeskString()<<", 确认提交吗? [y/n]#";

        char confirm;
        std::cin>>confirm;

        if(confirm=='y')
        {
            ThreadPool<Task>::getinstance()->push(t);
        }
        else
        {

        }

        usleep(100);
    }

    return 0;
}









// #include "ThreadPool.hpp"
// #include "thread.hpp"

// void* run(void* args)
// {
//     std::string message = (const char*)args;
//     while(1)
//     {
//         std::cout<<message<<std::endl;
//         sleep(1);
//     }
//     return nullptr;
// }

// int main()
// {

//     ThreadNs::Thread t1(run,(void*)"thread 1 run");
//     ThreadNs::Thread t2(run,(void*)"thread 2 run");

//     t1.start();
//     t2.start();

//     t1.join();
//     t2.join();

//     return 0;
// }